home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Singles Flirt Up Your Life! (German)
/
Singles Flirt Up Your Life.iso
/
data1.cab
/
Statemachine
/
tableChar.lua
< prev
next >
Wrap
Text File
|
2004-01-29
|
3KB
|
105 lines
-- table character state machine
beginStateMachine()
onEnter(function(msg)
print("table character state machine onEnter");
local table = getStateObjectFromID(msg.sender);
storeStateObject("table", table);
if (table) then
--table does exist
if (getParent().isOneActionPointLocked(table)) then
-- action point is locked
getParent().setEmoticon(EMOTICON_CANNOT, EMOTICON_DELAY);
sendMsg("emoThink", getParent().walkSO);
exitStateMachine();
else
getParent().lockActionPoints(table);
end
else
-- chair does not exist anymore
getParent().setEmoticon(EMOTICON_CANNOT, EMOTICON_DELAY);
sendMsg("emoThink", getParent().walkSO);
exitStateMachine();
end
freeHands(getParent());
end )
onExit(function(msg)
local table = retrieveStateObject("table");
getParent().unlockActionPoints(table);
removeStateObject("table");
end )
-- clean up table
state("clean")
onEnter(function(msg)
-- grab sponge
local sponge = getParent().loadGameObject("StandardGO","sponge");
getParent().attachRightObjectHolder(sponge);
storeStateObject("sponge", sponge);
local table = retrieveStateObject("table");
local clean = getParent().startActivity("clean", table);
local length, scale = getActivityLength(clean);
storeData("scale", scale);
startAnimation("cleanTableLoop", false, scale);
table.playSound("cleanSink");
--sendDelayedMsgThis("complete", length);
--this.actionComplete();
end )
onExit(function(msg)
local table = retrieveStateObject("table");
table.stopSound("cleanSink");
end )
-- onMsg("cancel", function(msg)
-- -- remove sponge
-- local sponge = getParent().getRightHeldObject()
-- getParent().detachRightObjectHolder();
-- if (sponge) then sponge.deleteGameObject(); end
--
-- getParent().stopActivity("clean", retrieveStateObject("table"));
-- exitStateMachine();
-- end )
--
-- onMsg("gueue", function(msg)
-- sendMsgThis("complete");
-- end )
onMsg("complete", function(msg)
-- remove sponge
local sponge = getParent().getRightHeldObject()
getParent().detachRightObjectHolder();
if (sponge) then sponge.deleteGameObject(); end
getParent().stopActivity("clean", retrieveStateObject("table"));
if (not testCancel()) then queueNextClean(getParent()) end;
exitStateMachine();
end )
onMsg("end", function(msg)
local table = retrieveStateObject("table");
local dirt = table.getDirtiness();
if (testCancel() or dirt<0.01) then
sendMsgThis("complete");
else
local scale = retrieveData("scale");
startAnimation("cleanTableLoop", false, scale);
table.playSound("cleanSink");
clean(table, CLEAN_PER_LOOP);
end
end )
endStateMachine()